1 GOTO910 2 PRINT"x[169][141][169][141]X` [234][255][169][255][133][145]L4[234]x[169]1[141][169][234][141]X` 3 [153]"xSTEPGINPUTSTOPSTEPINPUTONX` (null)(null)STEP(null)INPUTLISTLX(null)xSTEPUINPUTSTOPSTEP(null)INPUTONX` 4 PRINT"xhhh[170]h[168]hhhhhhh[152]H[138]HX` 5 [153]"hhhhhhh` 6 PRINT"[160][255][200][132][251][169][216][133][252] [241][183][138][162][160][255][200][145][251][136][208][251][230][252][202][208][246]` 7 [153]"NEWCLOSE(null)LEFT$>(null)ON(null)LET(null)(null)(null)(null)(null)(null)MID$(null)(null)` 35 IFUW=0THENSYSUU,15 40 POKEUC,0:POKEUN,0:UR$="":UI$="":IFUL=0THENUL=39 45 GETUI$:IFUI$=""THEN45 50 UA=ASC(UI$):UR=LEN(UR$):IFUA=13ANDUR>0THENPOKEUC,1:PRINT" [157]";:GOTO70 55 IFUA=20THENON-(UR=0)GOTO45:UR$=LEFT$(UR$,UR-1):PRINT"[157] [157][157]";:GOTO45 60 IFUR=ULTHEN45 65 GOSUB95:UR$=UR$+UI$:PRINTUI$;:GOTO45 70 IFUR$=UX$THENPRINT"[157] ";:GOTO145 75 FORUI=URTO1STEP-1:IFMID$(UR$,UI,1)=" "THENNEXT 80 UR$=LEFT$(UR$,UI):PRINT:RETURN 95 IFLEN(US$)=0THEN110 100 FORUI=1TOLEN(US$):IFUI$<>MID$(US$,UI,1)THENNEXT:UI$="" 105 RETURN 110 IFUA=46THENRETURN 115 IFUA=32ANDUR<>0THENRETURN 120 IFUA>47ANDUA<58THENRETURN 125 IFUA>64ANDUA<91THENRETURN 130 IFUA<193ORUA>218THENUI$="":RETURN 135 IFPEEK(UT)=UU%THENUI$=CHR$(UA-128) 140 RETURN 145 GOSUB170:POKE251,0:POKE252,US/256:POKE253,0:POKE254,UF:SYSUV 150 UZ=1:UV%=PEEK(UT):GOTO300 155 UZ=0:US$=UJ$:UG$=UK$:UT$=UL$:UP=UJ:UL=UK:PRINT"[147]";:IFUW=0THENPOKEUY,6:POKEUX,14 160 POKEUT,UV%:POKE251,0:POKE252,UF:POKE253,0:POKE254,US/256:SYSUV:IFUW=0THENSYSUU,15 165 POKEU1,U1%:POKEU2,U2%:POKEU3,U3%-1:POKEU4,U4%:GOTO35 170 U1%=PEEK(U1):U2%=PEEK(U2):U3%=PEEK(U3):U4%=PEEK(U4) 175 UJ$=US$:UK$=UG$:UL$=UT$:UJ=UP:UK=UL:RETURN 300 PRINT"[147]":POKEUT,UU%:IFUW=0THENPOKEUY,12:POKEUX,6 305 PRINT" M E N U" 310 PRINT" --------------------------------" 315 PRINT" 1. BEGIN HI-Q" 320 PRINT" 2. STUDENT INSTRUCTIONS" 325 PRINT" 3. TEACHER INSTRUCTIONS" 330 PRINT" 4. QUIT" 335 PRINT" --------------------------------" 340 PRINT" PRESS A NUMBER KEY (1-4) "; 345 UL=1:US$="1234" 347 GOSUB35:US$="" 350 ONVAL(UR$)GOSUB1000,400,500,390 355 GOTO300 370 IFUZ=1THENSYSUP%:GOTO155 375 RETURN 390 SYSUE:PRINT"[154][147]":IFUW=0THENPOKEUY,6:POKEUX,14:SYSUU,14 395 CLR:END 400 PRINT"[147]":POKEUT,UL%:IFUW=0THENPOKEUY,11:POKEUX,12 405 UT$=" [200]I-[209]":UH=1:UP=0:UG$="[211]TUDENT [201]NST" 407 GOSUB3050 410 UT$=" HI-Q":UH=1:UG$="STUDENT INST":PRINT"[147]":POKEUT,UU%:GOSUB850 411 PRINT " [209] [209] [209]" 412 PRINT " 13 14 15":PRINTTAB(25)"THIS IS " 413 PRINT " [209] [209] [209] THE PLAYING" 414 PRINT " 23 24 25 BOARD ":PRINT 415 PRINT " [209][160][160][160][209][160][160][160][209][160][160][160][209][160][160][160][209][160][160][160][209][160][160][160][209]" 416 PRINT " 31 32 33 34 35 36 37":PRINT 417 PRINT " [209][160][160][160][209][160][160][160][209][160][160][160][209][160][160][160][209][160][160][160][209] [160][160][209]" 418 PRINT " 41 42 43 44 45 46 47":PRINT 419 PRINT " [209][160][160][160][209][160][160][160][209][160][160][160][209][160][160][160][209][160][160][160][209][160][160][160][209]" 420 PRINT " 51 52 53 54 55 56 57":PRINT 421 PRINT " [209][160][160][160][209][160][160][160][209]" 422 PRINT " 63 64 65":PRINT 423 PRINT " [209][160][160][160][209][160][160][160][209]" 424 PRINT " 73 74 75":PRINT 485 GOSUB835 490 IFUZ=1THENSYSUP%:GOTO155 495 RETURN 500 PRINT"[147]":POKEUT,UL%:IFUW=0THENPOKEUY,2:POKEUX,10 501 UT$=" [200]I-[209]":UH=1:UP=0:UG$="[212]EACHER [201]NST":GOSUB850 502 PRINT" [212]O THE BEST OF OUR KNOWLEDGE," 503 PRINT" THIS PROGRAM IS IN THE PUBLIC" 504 PRINT" DOMAIN. [201]F THIS IS NOT TRUE," 505 PRINT" PLEASE CONTACT:" 506 PRINT" [195][207][205][205][207][196][207][210][197][160][194][213][211][201][206][197][211][211][160][205][193][195][200][201][206][197][211]" 507 PRINT" 3370 [208]HARMACY [193]VE. 508 [153]" ATNGINCOURT, (null)NTARIO" 509 [153]" LENANADA, (null)1(null) 2(null)4" 510 [153]" (416) 499-4292" 511 UH[178]1:[141]835:[141]850 512 [153]" (null)ROGRAM (null)AME: LEFT$I-(null)" 513 [153]" (null)RITTEN BY : " 514 [153]" (null)EVISED BY : LENHRIS (null)AISKUMS" 515 [153]" (null)HIS PROGRAM WILL RUN ON ANY 516 PRINT" [194][193][211][201][195][160]2.0 [208][197][212] [195]OMPUTER 517 [153]" PEEKATN(null)RIGHT$LEN 4.0 (null)VAL(null)CLOSELENOMPUTER 518 PRINT" 8032 [195][194][205] [195]OMPUTER 519 [153]" LENOMMODORE 64 LENOMPUTER 585 GOSUB835 590 IFUZ=1THENSYSUP%:GOTO155 595 RETURN 700 PRINTUC$"[147]BEFORE RUNNING THIS PROGRAM ON AN 8032 705 [153]" LOAD THE 'CBM 4032' PROGRAM":[128] 800 [153]"LOAD";:[151]UT,UU%:[139]UW[178]0[167][151]UY,1:[151]UX,14 801 [129]I[178]1[164]38:[153]" WAIT";:[130] 802 [129]I[178]1[164]22:[153]"CMD WAIT";:[130] 803 [129]I[178]1[164]37:[153]"CMDCMD WAIT";:[130] 804 [129]I[178]1[164]22:[153]"ONCMD WAIT";:[130] 805 [153]"STEP WAIT 806 PRINT" [146]  [146][169] 807 [153]" WAIT TAB((null)WAIT O M M O D O R E 808 PRINT"[223] [146] 809 [153]"EDUCATIONAL 810 PRINT"SOFTWARE 811 [153]"1983 812 PRINTLEFT$(UD$,24);"PRESS SPACE BAR OR WAIT[146]"UC$:UI=0 813 GETUI$:IFUI$<>" "THENUI=UI+1:IFUI<250THEN813 814 GOTO300 835 POKEUN,0:PRINTLEFT$(UD$,24);"PRESS SPACE BAR TO CONTINUE[146]" 840 GETUI$:IFUI$<>" "THEN840 845 RETURN 850 UP=UP+1:PRINT"[147]"LEFT$(UT$+UP$,21);RIGHT$(UP$+UG$+STR$(UP),18) 851 IFUW=0THENSYSUU,15 855 PRINT" --------------------------------------" 860 IFUH=0THENPRINTLEFT$(UD$,24);LEFT$(UP$,7);"HELP - PRESS H " 865 UH=0:PRINT"":RETURN 875 PRINTLEFT$(UD$,24);" ONE MOMENT PLEASE... ":RETURN 900 UX$="H":US=32768:U1=196:U2=197:U3=198:U4=216:UC=167:UB=1024:UD=1084:UE=1105 901 UT=59468:UU%=12:UL%=14:UP%=1158:UN=158:POKE50003,0:UW=PEEK(50003):UF=PEEK(53) 902 IFUW=0THENUS=1024:U1=209:U2=210:U3=211:U4=214:UC=204:UB=2048:UX=53280:UD=2064 903 IFUW=0THENUT=53272:UU%=21:UL%=23:UP%=2151:UN=198:UY=53281:UU=2199:UE=2087 904 UC$=CHR$(155):UV=1214:IFUW=0THENUF=196:UV=2238 905 UD$="":UP$=" " 906 DIMB(70),T(9,9),B1(33),B2(33) 907 DEF FNPV(A)=INT(US+214+(INT(A/10)-1)*80+((A/10-INT(A/10))*10-1)*2+.5) 909 RETURN 910 GOSUB900:PRINT"[147]":PRINT"[160]":REM SHIFTED SPACE 915 IFPEEK(US+40)<>96THEN700 920 IF(FRE(0)-(SGN(FRE(0))<0)*65536)>500THEN935 925 PRINTUC$"[147]THIS MACHINE DOES NOT HAVE ENOUGH" 930 PRINT"MEMORY TO RUN THIS PROGRAM !":END 935 PRINT"[147]"UC$:IFUW=0THEN965 940 IFUF=60ORUF=108ORUF=124THEN950 945 POKE52,0:POKE53,UF-4:CLR:GOSUB900 950 IFUW=160THENPOKE1103,88:POKE1104,228:POKE1107,85:POKE1111,228:GOTO965 955 IFUW<>1THENPRINT"[147]THIS PGM WILL NOT WORK ON THIS MACHINE!":END 960 POKE1103,49:POKE1104,230:POKE1107,46:POKE1111,230:GOTO965 965 SYSUD 970 GOSUB800:GOTO300 1000 IFUZ=1THENSYSUP%:SYSUP%:UZ=0 1001 PRINT"[147]"UC$;:RESTORE:IFUW=0THENPOKEUY,6:POKEUX,14 1050 REM REVISED BY TOM FERGUSON 1055 GOSUB875 1060 CT=-1 1070 GOTO1320 1100 POKE UT,PEEK(UT) AND 253 OR 12 1110 PRINT"[147]HI-Q":PRINT:PRINT:PRINTTAB(13)"COPYRIGHT BY" 1120 PRINT:PRINT:PRINT TAB(10);"CREATIVE COMPUTING":PRINT TAB(12);"P.O. BOX 789-M" 1130 PRINT TAB(5);"MORRISTOWN, NEW JERSEY 07960":K=TI 1140 IF TI0 THEN 1620 1611 PRINTTAB(25)"[145]ILLEGAL MOVE":K=TI 1612 IF TI < K+200 THEN 1612 1613 PRINTTAB(25)"[145] [145][145]" 1614 GOTO 1520 1620 IF B(P)<>-7THEN 1630 1621 GOTO1611 1630 IF Z=P THEN 1520 1640 IF ((Z+P)/2)=INT((Z+P)/2) THEN 1660 1650 GOTO 1611 1660 IF (ABS(Z-P)-2)*(ABS(Z-P)-18) <> 0 THEN 1611 1670 GOSUB 1960 1680 GOSUB4000 1690 GOSUB 2220 1700 GOTO 1520 1710 REM *** PRINT BOARD 1712 IFCT=-1THENPRINT"[147]" 1715 UT$=" HI-Q":UG$="":CT=CT+1:UP=CT:GOSUB850 1720 PRINT ""; 1725 PRINT""; 1730 FOR B4=1 TO 7 1740 PRINT TAB(((B4)*2)+11);STR$(B4); 1750 NEXT B4 1760 PRINT "[145]" 1770 FOR X=1 TO 9 1780 IF X-1 = 0 THEN 1810 1790 IF X-1 > 7 THEN 1810 1800 PRINT TAB(11);STR$(X-1); 1810 FOR Y=1 TO 9 1820 IF (X-1)*(X-9)*(Y-1)*(Y-9)=0 THEN 1850 1830 IF (X-4)*(X-5)*(X-6)=0 THEN 1870 1840 IF (Y-4)*(Y-5)*(Y-6) =0 THEN 1870 1850 REM 1860 GOTO 1910 1870 IF T(X,Y) <> 5 THEN 1900 1880 PRINT TAB((Y*2)+10);"[209]"; 1890 GOTO 1910 1900 PRINT TAB((Y*2)+10);"[215]"; 1910 REM 1920 NEXT Y 1930 PRINT:PRINT 1940 NEXT X 1950 RETURN 1960 REM *** UPDATE BOARDS: 1970 C=1:FOR X=1 TO 9 1980 FOR Y=1 TO 9 1990 IF C <> Z THEN 2180 2000 IF C+2 <> P THEN 2050 2010 IF T(X,Y+1)=0 THEN 1611 2020 T(X,Y+2)=5 2030 T(X,Y+1)=0:B(C+1)= -3 2040 GOTO 2160 2050 IF C+18 <> P THEN 2090 2060 IF T(X+1,Y)=0 THEN 1611 2070 T(X+2,Y)=5:T(X+1,Y)=0:B(C+9)=-3 2080 GOTO 2160 2090 IF C-2 <> P THEN 2130 2100 IF T(X,Y-1)=0 THEN 1611 2110 T(X,Y-2)=5:T(X,Y-1)=0:B(C-1)=-3 2120 GOTO 2160 2130 IF C-18 <> P THEN 2180 2140 IF T(X-1,Y)=0 THEN 1611 2150 T(X-2,Y)=5:T(X-1,Y)=0:B(C-9)=-3 2160 B(Z)=-3:B(P)=-7 2170 T(X,Y)=0:GOTO 2210 2180 C=C+1 2190 NEXT Y 2200 NEXT X 2210 RETURN 2220 REM *** CHECK IF GAME IS OVER. 2230 F=0 2240 FOR R=2 TO 8 2250 FOR C=2 TO 8 2260 IF T(R,C)<>5 THEN 2440 2270 F=F+1 2280 FOR A=R-1 TO R+1 2290 T=0 2300 FOR B=C-1 TO C+1 2310 T=T+T(A,B) 2320 NEXT B 2330 IF T <> 10 THEN 2350 2340 IF T(A,C) <> 0 THEN 2590 2350 NEXT A 2360 FOR X=C-1 TO C+1 2370 T=0 2380 FOR Y=R-1 TO R+1 2390 T=T+T(Y,X) 2400 NEXT Y 2410 IF T <> 10 THEN 2430 2420 IF T(R,X) <> 0 THEN 2590 2430 NEXT X 2440 NEXT C 2450 NEXT R 2460 REM *** GAME IS OVER. 2470 GOSUB850:PRINT" THE GAME IS OVER." 2480 PRINT" YOU HAD";F;"PIECES REMAINING." 2490 IF F <> 1 THEN 2520 2500 PRINT " BRAVO! YOU MADE A PERFECT SCORE!" 2510 REM 2520 PRINT " PLAY AGAIN? "; 2530 UL=1:US$="HYN":GOSUB35:A$=UR$ 2540 IF A$="N"THENRETURN 2560 PRINT"[147]"; 2570 RESTORE: GOTO 1320 2580 STOP 2590 RETURN 2640 REM 2650 FOR B3=1 TO 33 2660 READ B1(B3) 2670 NEXT B3 2680 FOR B3=1 TO 33 2690 READ B2(B3) 2700 NEXT B3 2710 RESTORE 2720 RETURN 2730 DATA 13,14,15,23,24,25,31,32,33,34,35,36,37 2740 DATA 41,42,43,44,45,46,47,51,52,53,54,55,56,57,63,64,65,73,74,75 2750 REM 2760 FOR B3=1 TO 33 2770 IF B2(B3)=B4 THEN 2810 2780 NEXT B3 2790 B4=0 2800 RETURN 2810 B4=B1(B3) 2820 GOTO 2800 2830 REM 2840 PRINT "PRESS THE SPACE-BAR TO CONTINUE." 2850 GETA$:IFA$<>" "THEN2850 2860 PRINT "[147]"; 2870 RETURN 2880 REM: INSTRUCTIONS AND EXPLANATION 2890 REM: OF BOARD AND HOW TO ENTER 2900 REM: RESPONSES. 2910 UP=3:POKEUT,UL%:GOSUB850:PRINT" [212]O ENTER A PEG NUMBER, TYPE ITS" 2920 PRINT " ROW NUMBER AND ITS COLUMN NUMBER":PRINT" AS ONE NUMBER." 2930 PRINT " [198]OR EXAMPLE:":PRINT " THE TOPMOST,"; 2940 PRINT " LEFTMOST PEG IS 13." 2950 PRINT " [212]HE MIDDLE OF THE BOARD":PRINT" (WHICH WILL BE EMPTY AT FIRST)"; 2960 PRINT " IS 44." 2970 PRINT " [212]HE LOWEST, RIGHTMOST PEG IS 75." 2980 GOSUB835:UP=4:GOSUB850:PRINT" [217]OU WILL FIRST BE ASKED 2985 [153]" THE LOCATION OF A PEG TO BE MOVED. 2990 PRINT" ('MOVE WHICH PIECE?')" 3000 PRINT" THEN YOU WILL BE ASKED FOR THE":PRINT" DESTINATION." 3010 PRINT" ('TO WHERE?')" 3020 PRINT:PRINT" [215]HEN THE BOARD IS PRINTED, THERE WILL" 3030 PRINT" BE GUIDES TO HELP YOU SELECT A PEG." 3035 GOSUB835 3040 RETURN 3050 REM 3055 UP=0:POKEUT,UL%:GOSUB850 3060 PRINT" [212]HIS IS A COMPUTERIZED VERSION" 3070 PRINT" OF AN OLD [197]UROPEAN SOLITAIRE GAME OF" 3080 PRINT" LOGIC CALLED [200][201]-[209]. [212]HE GAME STARTS" 3090 PRINT" WITH A PEGBOARD SHAPED LIKE A CROSS" 3100 PRINT" HAVING PEGS IN ALL HOLES BUT THE " 3110 PRINT" CENTER. [212]HE OBJECT OF THIS GAME IS" 3120 PRINT" TO REMOVE ALL 32 PEGS, OR AS MANY AS" 3130 PRINT" POSSIBLE, BY JUMPING INTO AN EMPTY" 3140 PRINT" HOLE--THE JUMPED PEG IS THEN REMOVED." 3165 GOSUB835:POKEUT,UU% 3170 RETURN 4000 REM MOVE ON BOARD 4010 V1=FNPV(P1):FORG1=1TO10 4020 POKEV1,81 4030 FORG2=1TO20:NEXTG2 4040 POKEV1,87 4050 FORG2=1TO20:NEXTG2 4060 NEXTG1 4070 V2=FNPV(P2):FORG1=1TO10 4080 POKEV2,87 4090 FORG2=1TO20:NEXTG2 4100 POKEV2,81 4110 FORG2=1TO20:NEXTG2 4120 NEXTG1 4130 IFINT(P1/10)<>INT(P2/10)THEN4150 4140 RP=P1+SGN(P2-P1):GOTO4160 4150 RP=P1+10*SGN(P2-P1) 4160 V3=FNPV(RP):POKEV3,87 4170 RETURN